// import GravityAnalyticsAPI from "./GravityAnalyticsSDK.d.ts";

// declare global {
//     interface Window {
//         adShowEvent(adType, adUnitId,otherProperties);
//     }
//   }
//   export {};
export default class mailiang {
    static _instance: mailiang = null;
    static get Instance(): mailiang {
        if (this._instance == null)
            this._instance = new mailiang();
        return this._instance;
    }
    
    /**
     * 数据初始化
     */
    
    ge: GravityAnalyticsAPI
    init(openid: string) {
        
        if (this.ge == null) {
            const config = {
                // accessToken: "f6yfYi38azQpl7haqgc1WhUjlLswomro", // 项目通行证，在：网站后台-->管理中心-->应用列表中找到Access Token列 复制（首次使用可能需要先新增应用）
                // accessToken: "9gwcaDtlfXgjs27yqekeOuvuVcndGEIT", // 项目通行证，在：网站后台-->管理中心-->应用列表中找到Access Token列 复制（首次使用可能需要先新增应用）
                accessToken: "svp56xlqAwEflD18MOFyIWRuYfhdmZXd", // 项目通行证，在：网站后台-->管理中心-->应用列表中找到Access Token列 复制（首次使用可能需要先新增应用）
                clientId: openid, // 用户唯一标识，如微信小程序的openid
                autoTrack: {
                    appLaunch: true, // 自动采集 $MPLaunch
                    appShow: true, // 自动采集 $MPShow
                    appHide: true, // 自动采集 $MPHide
                    pageShow: true, // 自动采集 $MPViewScreen
                    pageShare: true, // 自动采集 $MPShare
                },
                name: "ge", // 全局变量名称
                enableLog: false, // 是否开启日志打印（测试时使用，上线之后一定要关掉）
                debugMode: "none", // 是否开启测试模式，开启测试模式后，可以在 网站后台--管理中心--元数据--事件流中查看实时数据上报结果。（测试时使用，上线之后一定要关掉，改成none或者删除）
                sendTimeout: 3000, // 网络请求超时时间，单位毫秒，默认值 3000 ms
                maxRetries: 3, // 网络请求失败时的重试次数，1 表示不重试。默认值是 3
                enablePersistence: true, // 是否使用本地缓存，主实例默认为 true，子实例默认为 false
                asyncPersistence: false, // 是否使用异步存储，默认为 false
            };

            this.ge = new GravityAnalyticsAPI(config);
          
            this.ge.initialize({
                name: "user",
                version: 123,
                openid: openid,
                enable_sync_attribution: false,
              }).then((res) => {
                console.log("initialize success " + res);
              })
              .catch((err) => {
                console.log("initialize failed, error is " + err);
              });
            console.log("mailiang 初始化完成");
         
            // this.ge.adShowEvent(adType,videoID, adUnitId);

            // let isshouquan = Laya.LocalStorage.getItem(this.zhucestr);
            // if(isshouquan){
    
            // }else{
            //     this.yonghuZhuce(openid);
            //     Laya.LocalStorage.setItem(this.zhucestr, "1");
            // }
            this.ge.setupAndStart();
            // window["ges"]=this.ge
        }
    }
    // ge.setupAndStart();

}